#define _CRT_SECURE_NO_WARNINGS 1


//#include<string>
//#include<map>
//#include<iostream>
//
//using namespace std;
//
//bool Func(map<char, int>& hash, map<char, int>& hash_t)
//{
//    auto it1 = hash.begin();
//    auto it2 = hash_t.begin();
//    while (it2 != hash_t.end())
//    {
//        if (!hash.count(it2->first))
//        {
//            return false;
//        }
//        it2++;
//    }
//    return true;
//}
//
//string minWindow(string s, string t)
//{
//    map<char, int> hash_t, hash;
//    for (auto& e : t)
//    {
//        hash_t[e]++;
//    }
//    int size = s.size(), left = 0, right = 0;
//    string str;
//    int Min = INT_MAX;
//    while (right < size)
//    {
//        hash[s[right]]++;
//        while (Func(hash, hash_t))
//        {
//            if (right - left + 1 < Min)
//            {
//                Min = right - left + 1;
//                string temp(s.begin() + left, s.begin() + right + 1);
//                str = temp;
//            }
//            hash[s[left]]--;
//            if (hash[s[left]] == 0)
//            {
//                hash.erase(s[left]);
//            }
//            left++;
//        }
//        right++;
//    }
//    return str;
//}
//
//int main()
//{
//    string s = "aa", t = "aa";
//    cout << minWindow(s, t) << endl;
//
//	return 0;
//}


#include<vector>
#include<iostream>

using namespace std;

vector<int> searchRange(vector<int>& nums, int target)
{
    vector<int> v(2, -1);
    int left = 0, right = nums.size() - 1, mid = 0;
    while (left < right)
    {
        mid = left + (right - left) / 2;
        if (nums[mid] < target)
        {
            left = mid + 1;
        }
        else
        {
            right = mid;
        }
    }
    if (nums[mid] == target)
    {
        v[0] = mid;
    }
    left = 0, right = nums.size() - 1, mid = 0;
    while (left < right)
    {
        mid = left + (right - left + 1) / 2;
        if (nums[mid] < target)
        {
            left = mid;
        }
        else if (nums[mid] >= target)
        {
            right = mid - 1;
        }
    }
    if (nums[mid] == target)
    {
        v[1] = mid;
    }
    return v;
}

int main()
{
    vector<int> v = { 5,7,7,8,8,10 };
    vector<int> ret = searchRange(v, 8);
    for (auto& e : ret)
    {
        cout << e << ' ';
    }
    cout << endl;

	return 0;
}